Open-DIS: An Open Source Implementation of the DIS Protocol for C++ and Java
نویسندگان
چکیده
The Distributed Interactive Simulation (DIS) protocol has long been used in military simulations, but no widespread open source C++ implementation has been made available to date. We have written an open source implementation in C++ and Java that we believe will result in a less duplicated effort in creating DIS simulations and that can serve as a platform for investigating modifications and extensions to the protocol. The Open-DIS Java and C++ implementations were created from an XML template language, and other language implementations can be created as needed. The C++ and Java implementations are capable of representing the data contained in protocol data units in DIS format, and the Java implementation can in addition represent the data in XML and Java object serialization formats. A schema for the XML format is also provided. Preliminary results show that the size of the information contained in DIS packets represented in XML and encoded with the draft version of the World Wide Web Consortium’s Efficient XML Interchange format are comparable to that of the native binary DIS format. The project is royalty-free, open source and has a non-viral Berkeley Software Distribution (BSD) license. We describe the approach taken in creating the implementation, the outlines of the implementation, and the community established for its maintenance and improvement. 1. Distributed Interactive Simulation The Distributed Interactive Simulation protocol (DIS, IEEE-1278.x) [1] is a standard for binary exchange of information in military simulations. The interoperability of the standard relies primarily on a consistent format for information on the wire and agreed-upon enumerations of constant values. Anyone can obtain the IEEE1278.x standard and implement a compliant DIS library using any programming language API they choose, so long as the API reads and writes data in the IEEE-1278.x format. The Modeling, Virtual Environments, and Simulation (MOVES) Institute at the Naval Postgraduate School (NPS) has in the past implemented portions of the DIS protocol in Java, using a variety of techniques. DIS-XML [2] used an XML schema and Sun’s Java for XML Binding (JAXB) 1.x [3] to generate code that could marshal and unmarshal data to XML, and added hand-written code to marshal and unmarshal from the IEEE-1278.x binary format. This worked well, and the ability to marshal to XML format was found to be particularly useful. We have used Extensible Messaging and Presence Protocol (XMPP) chat servers with DIS Protocol Data Units (PDUs) in XML format to bridge wide area networks across firewalls over chat [2], and have used XML as an archiving format for DIS traffic. We have made use of DIS-XML in other projects, such as AUV Workbench [4] and Xj3D [5] with good results, and have made use of MATLAB’s Java loading facility to use the Java implementation within that tool. The drawbacks to the DIS-XML approach primarily affected the protocol developers. These included the necessity of first writing the XML schema, and then having to write the code to marshal and unmarshal the information to IEEE1278.x format. Certain coding idioms used in the DIS PDUs were also not very easily expressed in XML schema. While JAXB is a useful tool for creating Java code from XML schemas, similar tools for C++ were found wanting, either because they required a license or because the code they generated was thought to be impenetrable to typical C++ programmers. The API generated in the C++ code was not necessarily similar to the API of the Java code, and it was thought that a similar API for both Java and C++ would shorten programmer learning curves. An open source C++ implementation was desired for the MOVES Institute’s Delta3D game engine [6], so the problems encountered in generating C++ code from the existing XML schema were disappointing. Most of the C++ DIS implementations to date have either been commercial products or internal to a specific corporate project. Both of these approaches have drawbacks. Commercial products often have good performance and support, but some modeling and simulation projects are unwilling to encumber their efforts with a dependency on a commercial license, in part because of the very long software lifecycles in Department of Defense (DoD) projects. A project that lasts for twenty years may outlast some of the companies providing the software. This may leave a project in limbo, or at least require a rewrite to accommodate the API of a different DIS implementation. On the other hand projects that use internal DIS implementations very often wind up duplicating previous work rather than using developers to add value with innovative and new features. We want those implementing DIS projects to stop working on the DIS portion and start working on the valueadded portions of the project.
منابع مشابه
Patient Health Literacy and Perception of Provider Communication: Is there a Link?
C l i n M e d International Library Citation: Vaughn E, Hadden K, Doolittle B (2015) Patient Health Literacy and Perception of Provider Communication: Is there a Link?. J Fam Med Dis Prev 1:016 Received: September 23, 2015: Accepted: October 18, 2015: Published: October 21, 2015 Copyright: © 2015 Vaughn E. This is an open-access article distributed under the terms of the Creative Commons Attrib...
متن کاملOSIP: An Open Source SIP Architecture
In this paper, we present an overview of the architecture of OSIP. OSIP is an open source implementation of the session initiation protocol (SIP) currently discussed for IP Telephony and group communication. To allow for easy portability and wider usage this implementation was developed in JAVA. The message parsing part of OSIP was designed to be automatically generated based on the protocol sp...
متن کاملHow can GPs Best Handle Social Determinants in Practice? Application in the Brussels Environment
C l i n M e d International Library Citation: Jean-Pierre U, Shelmerdine S, van der Veer C, Roland M (2016) How can GPs Best Handle Social Determinants in Practice? Application in the Brussels Environment. J Fam Med Dis Prev 2:025 Received: April 11, 2015: Accepted: March 07, 2016: Published: March 10, 2016 Copyright: © 2016 Roland M, et al. This is an open-access article distributed under the ...
متن کاملFamily Oriented Care: Opportunities for Health Promotion and Disease Prevention
C l i n M e d International Library Citation: Garcia-Huidobro D, Mendenhall T (2015) Family Oriented Care: Opportunities for Health Promotion and Disease Prevention. J Fam Med Dis Prev 1:009 Received: July 16, 2015: Accepted: August 31, 2015: Published: September 04, 2015 Copyright: © 2015 Garcia-Huidobro D. This is an open-access article distributed under the terms of the Creative Commons Attr...
متن کاملMicrobiological Safety of Food, Particularly for Vulnerable People
C l i n M e d International Library Citation: Lund BM (2016) Microbiological Safety of Food, Particularly for Vulnerable People. J Fam Med Dis Prev 2:035 Received: April 07, 2016: Accepted: June 22, 2016: Published: June 25, 2016 Copyright: © 2016 Lund BM. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, dist...
متن کامل